
//
// 120613 - AH - Created.
//

package org.soekrat.environment;

import java.util.List;

/**
 * <p>
 *   Interface for objects that supply an
 *   {@link Orb} for a given conversation environment.
 * </p>
 * @author Arne Halvorsen (AH)
 * @author Laetitia Le Chatton (LLC)
 */
public interface OrbSupplier 
{
  /**
   * <p>
   *   Gets name on Soekrat semantic engine.
   * </p>
   * @return Name 
   */
  String getEngineName();
  
  /**
   * <p>
   *   Initializes.
   * </p>
   * @param orb        {@link Orb} to supply.
   * @param secondPass List {@code this} should add itself if want to be in
   *                   for a second pass (second call to this method).
   * @return Error message or {@code null} if OK.
   */
  String supply(Orb orb, List<OrbSupplier> secondPass);
  
}
